
/*
/**
 * 线程的状态 (java自己的,不是操作系统自带的状态):.
 *      获取状态的方法: thread.getState();.
 *      1. NEW: Thread 对象创建出来了, 但是内核的PCB还没有创建(还没有正真创建线程)..
 *      2. RUNNABLE: 就绪状态 (正在CPU上运行 + 在就绪队列中排队 )..
 *      3. TERMINATED: 内核的PCB销毁了, 但是 Thread对象还在..
 *      4. TIME_WAITING: 按照一定的时间进行阻塞. (sleep / join(时间) )..
 *      5. WAITING: 特殊的阻塞状态,调用wait(后续详细介绍) / 不带参数的 join()..
 *      6. BLOCKED: 等待锁的时候进入的阻塞状态( TestDemo14 中详细介绍 锁 )..
 *      ( 课件有这几种状态的转化示意图 ).
 *
 * Date: 2022-09-11  8月14 02:41:00 的近课程内容
 * Time: 15:08

public class TestDemo13 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            for (int i = 0; i < 1_0000; i++) {
                //啥都不干.
            }
        });
        // 得到的是 NEW
        System.out.println("还没有正真创建线程时的状态: " + thread.getState());

        thread.start();

        // 线程 thread 正在工作, 得到的是 RUNNABLE
        System.out.println("就绪状态: " + thread.getState());

        thread.join();

        // thread 结束了,得到的是 TERMINATED
        System.out.println("内核的PCB销毁了,但是Thread对象还在时的状态: " + thread.getState());
    }
}
*/

package AttributeThreading;

/**
 * 线程的状态 (java自己的,不是操作系统自带的状态):
 *      获取状态的方法: thread.getState();
 *      1. NEW: Thread 对象创建出来了, 但是内核的PCB还没有创建(还没有正真创建线程).
 *      2. RUNNABLE: 就绪状态 (正在CPU上运行 + 在就绪队列中排队 ).
 *      3. TERMINATED: 内核的PCB销毁了, 但是 Thread对象还在.
 *      4. TIME_WAITING: 按照一定的时间进行阻塞. (sleep / join(时间) ).
 *      5. WAITING: 特殊的阻塞状态,调用wait(后续详细介绍) / 不带参数的 join().
 *      6. BLOCKED: 等待锁的时候进入的阻塞状态( TestDemo14 中详细介绍 锁 ).
 *      ( 课件有这几种状态的转化示意图 ).
 *....
 * Date: 2022-09-11  8月14 02:41:00 的近课程内容
 * Time: 15:08
 */
public class TestDemo13 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            for (int i = 0; i < 1_0000; i++) {
                //啥都不干.
            }
        });
        // 得到的是 NEW
        System.out.println("还没有正真创建线程时的状态: " + thread.getState());

        thread.start();

        // 线程 thread 正在工作, 得到的是 RUNNABLE
        System.out.println("就绪状态: " + thread.getState());

        thread.join();

        // thread 结束了,得到的是 TERMINATED
        System.out.println("内核的PCB销毁了,但是Thread对象还在时的状态: " + thread.getState());
    }
}